package controllers;

import java.util.List;

import models.Cliente;
import models.DadosBancarios;
import models.Endereco;
import play.mvc.Controller;
import Persistencia.Exception.DAOException;
import controllers.BusinessDelegate.BusinessDelagate;

public class ClienteController extends Controller{

	private Cliente cAtual;
	
	public static void index(){
		String titulo ="Modulo Cliente";
		render(titulo);
	}
	
	public static void cadastroCliente(){
		String titulo = "Cadastro de Clientes";
		render(titulo);
	}
	
	public static void novoCliente(String [] cliente,String [] end,String [] db){
		String titulo = "Seja Bem Vindo";
		BusinessDelagate business = BusinessDelagate.getInstance();
		Endereco e = new Endereco(end[0], Integer.parseInt(end[1]), end[2], end[3], end[4]);
		DadosBancarios d = new DadosBancarios(db[0], db[1], Double.parseDouble(db[2]), db[3]);
		//String nome, String cpf, String telefone,String login, String senha, Endereco end, DadosBancarios dados
		Cliente c = new Cliente(cliente[0], cliente[1], cliente[2], cliente[3], cliente[4], e, d);
		try {
			business.cadastrarNovoCliente(c);
			render(titulo);
		} catch (DAOException ex) {
			error(ex);
		}
		
	}
	
	public static void listarClientes(){
		String titulo = "Lista de Clientes";
		BusinessDelagate business = BusinessDelagate.getInstance();
		try {
			List<Cliente> clientes = business.getAllCliente();
			render(titulo,clientes);
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void buscarCliente(){
		String titulo = "Busca de Clientes";
		render(titulo);
	}

	public static void gerenciarCliente(String cpf){
		String titulo = "Gerenciar Clientes";
		BusinessDelagate business = BusinessDelagate.getInstance();
		Cliente cliente;
		try {
			cliente = business.getClienteByCPF(cpf);
			render(titulo,cliente);
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void atualizarCliente(String nome, String cpf, String tel){
		BusinessDelagate business = BusinessDelagate.getInstance();
		Cliente c = business.getClienteAtual();
		c.setNome(nome);
		c.setCpf(cpf);
		c.setTelefone(tel);
		try {
			business.atualizarCliente(c);
			Application.notificacao("Dados do cliente atualizados com sucesso!");
		} catch (DAOException e) {
			error(e);
		}
	}
	
	public static void removerCliente(){
		BusinessDelagate business = BusinessDelagate.getInstance();
		Cliente c = business.getClienteAtual();
		try {
			business.removerCliente(c);
			Application.notificacao("Cliente removido com sucesso!");
		} catch (DAOException e) {
			error(e);
		}
	}
	
}
